home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Shareware World / Info / For Developers / MacZoop 1.8.3 / More Classes / Window Classes / ZTextWindow.h < prev   
Text File  |  1998-07-09  |  3KB  |  111 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            ObjectMacZapp        -- a standard Mac OOP application template
  5. *
  6. *
  7. *
  8. *            ZTextWindow.h        -- a window that displays text files (uses TextEdit)
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1996, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21.  
  22. #pragma once
  23.  
  24. #ifndef __ZTEXTWINDOW__
  25. #define    __ZTEXTWINDOW__
  26.  
  27.  
  28. #include    "ZScroller.h"
  29. #include    <TextEdit.h>
  30.  
  31. /*
  32.  
  33. This is a scroller that displays text. It does this by using TextEdit. You can edit the text
  34. if editable is true, and save a text file of the contents. It cannot open very big files
  35. because of the TextEdit limitations.
  36.  
  37. */
  38.  
  39. typedef enum
  40. {
  41.     teFixedWidth,
  42.     teWindowWidth
  43. }
  44. TEWidthControl;
  45.  
  46. // set up streaming stuff:
  47.  
  48. DEFINECLASSID( ZTextWindow, 'ztxt' );
  49.  
  50. // class def:
  51.  
  52.  
  53. class    ZTextWindow    : public ZScroller
  54. {
  55. protected:
  56.     TEHandle            itsText;
  57.     Boolean                isEditable;
  58.     short                emSpace;
  59.     short                emWidth;
  60.     TEWidthControl        wControl;
  61.  
  62. public:
  63.     ZTextWindow( ZCommander* aBoss, const short windID, Boolean allowEditing = TRUE );
  64.     ZTextWindow();
  65.     ~ZTextWindow();
  66.     
  67.     virtual void    InitZWindow();
  68.     virtual void    DrawContent();
  69.     virtual void    ClickContent( const Point mouse, const short modifiers);
  70.     virtual void    Activate();
  71.     virtual void    Deactivate();
  72.     virtual void    SetSize( const short width, const short height);
  73.     virtual void    Zoom( const short partCode );
  74.     virtual void    Scroll( const short dH, const short dV );
  75.     virtual void    Type( const char theChar, const short modifiers );
  76.     virtual void    OpenFile( const OSType fType, Boolean isStationery = FALSE );
  77.     virtual void    SaveFile();
  78.     virtual void    Idle();
  79.     virtual void    AdjustCursor( const Point mouse, const short modifiers );
  80.     
  81.     virtual Boolean    CanPasteType();
  82.     virtual void    DoCut();
  83.     virtual void    DoCopy();
  84.     virtual void    DoPaste();
  85.     virtual void    DoClear();
  86.     virtual void    DoSelectAll();
  87.     
  88.     virtual void    HandleCommand( const long aCmd );
  89.     virtual void    HandleCommand( const short menuID, const short itemID );
  90.     virtual void    UpdateMenus();
  91.     
  92.     virtual void    SetWidthControl( TEWidthControl aCtl, short fixWidth = 255 );
  93.     virtual void    SetSizeRect( const Rect& szRect );
  94.     virtual void    TextEditClickLoop();
  95.     
  96.     virtual void    GetTextViewRect( Rect* r ) { GetContentRect( r ); };
  97.     
  98.     inline    TEHandle    GetTextEditHandle() { return itsText; };
  99.     
  100. protected:
  101.  
  102.     virtual void    MakeTextEdit();
  103.     virtual void    RecalText();
  104. };
  105.  
  106.  
  107.  
  108. #define        kTextFileTooBigErr        77
  109. #define        kMaxTextSize            32760
  110.  
  111. #endif